package com.school.admin.mapper;

import com.school.admin.entity.MallMenu;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.school.admin.entity.vo.MallMenuGet;
import com.school.admin.entity.vo.MallMenuVo;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * <p>
 * 菜单 Mapper 接口
 * </p>
 *
 * @author sunpx
 * @since 2022-03-24
 */
public interface MallMenuMapper extends BaseMapper<MallMenu> {


    /**
     * 返回所有菜单信息
     * @return
     */
    List<MallMenuVo> getListMode(@Param("roleId") String roleId);


    /**
     * 判断菜单下是否有菜单
     *
     * @param id
     * @return
     */
    @Select("select count(*) from (select * from mall_menu where id=${id}) as m1 join mall_menu m2 where m1.menu_code=m2.parent_id and m2.is_deleted=0")
    Integer isnull(@Param("id") String id);

    /**
     * @return : java.util.List<java.lang.String>
     * @author : zzz
     * @desc : TODO 查询登录用户下所有按钮权限
     * @date :  13:11:07
     * @params : roleId
     */
    List<String> getAllBtn(@Param("roleId") String roleId);

    /**
     * 所有菜单信息
     * @author : sunpx
     * @param
     * @return java.util.List<com.school.admin.entity.vo.MallMenuVo>
     * @date : 2022-03-25 23:52:22
     */
    List<MallMenuVo> findMenuAll();

    /**
     * 查询菜单信息
     *
     * @param id
     * @return
     */
    MallMenuGet getByModel(@Param("id") String id);

    /**
     * @return : java.lang.String
     * @author : sunpx
     * @desc : 根据父菜单code查询最大的子菜单code
     * @date :  00:50:12
     * @params : pId
     */
    String maxModel(@Param("pId") String pId);
}
